home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
games
/
kids
/
fouryrs.zoo
/
color.lst
next >
Wrap
File List
|
1993-03-07
|
5KB
|
226 lines
' color.gfa
' Programmed by Seymour Shlien in GFA Basic 3.5
' 624 Courtenay Avenue
' Ottawa, Ontario
' Canada, K2A 3B5
' Feb 21 1993
DIM deskcolors%(15)
DIM xbs_files$(20)
rez%=XBIOS(4)
IF rez%<>0
ALERT 3," Please switch to | low resolution! ",1,"Oops",b%
STOP
ENDIF
number_of_xbs_files%=0
@read_put
@read_sound
@set_standard_colors
@dosound
@instructions
@get_deskcolors
file_num%=1
d__load_degas_pi1("color"+STR$(file_num%)+".pi1")
IF found%=0
@box_pattern
ENDIF
@color_bar
fillpattern%=8
GRAPHMODE 2
REPEAT
IF MOUSEK=1
IF MOUSEY>20
IF POINT(MOUSEX,MOUSEY)<>1
FILL MOUSEX,MOUSEY
PAUSE 14
ENDIF
ELSE IF MOUSEX<180
IF MOUSEX<40
INC fillpattern%
IF fillpattern%>24
fillpattern%=1
ENDIF
DEFFILL 0,1
PBOX 1,1,39,16
DEFFILL col%,2,fillpattern%
FILL MOUSEX,MOUSEY
PAUSE 15
ELSE
col%=MOUSEX/20
IF MOUSEY>8
col%=col%+7
ENDIF
DEFFILL 0,1
PBOX 1,1,39,16
DEFFILL col%,2,fillpattern%
FILL 10,10
PAUSE 15
ENDIF
ELSE IF MOUSEX<230
SPUT s$
@color_bar
PAUSE 30
ELSE IF MOUSEX<270
INC file_num%
IF found%=0
file_num%=1
ENDIF
@dosound
d__load_degas_pi1("color"+STR$(file_num%)+".pi1")
IF found%=0
@box_pattern
ENDIF
fillpattern%=8
@color_bar
ENDIF
ENDIF
UNTIL ((MOUSEK=1) AND (MOUSEX>270) AND (MOUSEY<20))
@restore_deskcolors
> PROCEDURE read_put
' the house
IF EXIST("color.put")
OPEN "i",#1,"color.put"
house$=INPUT$(CVI(INPUT$(2,#1)),#1)
CLOSE #1
ELSE
PRINT "color.put was not found."
PAUSE 100
ENDIF
RETURN
> PROCEDURE d__load_degas_pi1(file$)
'
LOCAL loop%
IF EXIST(file$)
OPEN "i",#1,file$
s$=INPUT$(2,#1)
m__current_colors$=INPUT$(32,#1)
FOR loop%=1 TO 15
SETCOLOR loop%,CVI(MID$(m__current_colors$,loop%*2+1,2))
NEXT loop%
s$=INPUT$(32000,#1)
CLOSE #1
SPUT s$
found%=1
ELSE
CLS
LOCATE 1,15
PRINT file$+" was not found."
found%=0
PAUSE 50
ENDIF
RETURN
> PROCEDURE color_bar
COLOR 1
FOR i=2 TO 8
DEFFILL i,1
PBOX i*20,0,(i+1)*20,8
BOX i*20,0,(i+1)*20,8
DEFFILL i+7
PBOX i*20,9,(i+1)*20,16
BOX i*20,9,(i+1)*20,17
NEXT i
DEFTEXT 1
LINE 0,0,319,0
TEXT 184,14,"CLEAR"
LINE 180,0,180,17
TEXT 230,14,"NEXT"
LINE 228,0,228,17
TEXT 270,14,"QUIT"
LINE 268,0,268,17
LINE 319,0,319,17
DEFMOUSE 0
LINE 0,17,319,17
BOX 0,0,39,17
RETURN
> PROCEDURE get_deskcolors
LOCAL i%
FOR i%=0 TO 15
deskcolors%(i%)=XBIOS(7,i%,-1)
NEXT i%
RETURN
> PROCEDURE restore_deskcolors
LOCAL i%
FOR i%=0 TO 15
SETCOLOR i%,deskcolors%(i%)
NEXT i%
RETURN
> PROCEDURE read_sound
LOCAL a%
IF EXIST("color.xbs")
OPEN "i",#1,"color.xbs"
a%=LOF(#1)
DIM music_data&(a%/2)
BLOAD "color.xbs",VARPTR(music_data&(0))
CLOSE #1
number_of_xbs_files%=1
ELSE
LOCATE 1,18
PRINT "color.xbs was not found"
number_of_xbs_files%=0
ENDIF
RETURN
> PROCEDURE dosound
LOCAL i%
IF number_of_xbs_files%>0
' SPOKE &H484,PEEK(&H484) AND NOT 1
addr%=V:music_data&(0)
~XBIOS(32,L:addr%)
ENDIF
RETURN
> PROCEDURE box_pattern
LOCAL i%,ix1%,ix2%,iy1%,iy2%
CLS
COLOR 1
FOR i%=0 TO 8
x=COSQ(i%*40)+SINQ(i%*40)
y=-SINQ(i%*40)+COSQ(i%*40)
ix%=140+40*x
iy%=80+40*y
BOX ix%,iy%,ix%+50,iy%+50
NEXT i%
SGET s$
PAUSE 50
RETURN
> PROCEDURE instructions
CLS
PRINT " COLOR"
PRINT
PRINT "Using the mouse pointer, click on"
PRINT "any color in the pallette on top"
PRINT "of the screen and then click in"
PRINT "any area in the outlined picture."
PRINT "Once your picture is colored, add"
PRINT "textures by clicking in the white box"
PRINT "in the top left until the desired"
PRINT "texture is found."
PRINT
PRINT "Seymour Shlien 17-January-93"
PRINT
PRINT "Click mouse button to continue."
PUT 200,150,house$
REPEAT
UNTIL MOUSEK<>0
RETURN
> PROCEDURE set_standard_colors
LOCAL i%,j%
FOR i%=0 TO 15
READ j%
SETCOLOR i%,j%
NEXT i%
DATA 4095
DATA 3840
DATA 240
DATA 4080
DATA 15
DATA 3855
DATA 255
DATA 1365
DATA 819
DATA 3891
DATA 1011
DATA 4083
DATA 831
DATA 3901
DATA 1023
DATA 0
RETURN